package com.cy.ppj.service.order;

import com.cy.ppj.model.PageBean;
import com.cy.ppj.model.ao.order.MallOrderAuditPurchaseProofAO;
import com.cy.ppj.model.query.order.MallOrderListAdminQuery;
import com.cy.ppj.model.vo.order.MallOrderDetailAdminVO;
import com.cy.ppj.model.vo.order.MallOrderListAdminVO;

/**
 * @Description 马先生商城 分期订单 service
 * @Author tanyilin
 * @Date 2019/4/3 11:49
 */
public interface MallOrderService {

    /**
     * 后台-申请中 订单 （已生成订单，但未出额度， finalStatus = 1、2）
     * @param query
     * @return com.cy.ppj.model.PageBean<com.cy.ppj.model.vo.order.MallOrderListAdminVO>
     */
    PageBean<MallOrderListAdminVO> selectApplyingMallOrderList(MallOrderListAdminQuery query);

    /**
     * 后台-已授信 订单 （已出授信额度，但未上传商品订单信息， finalStatus = 3）
     * @param query
     * @return com.cy.ppj.model.PageBean<com.cy.ppj.model.vo.order.MallOrderListAdminVO>
     */
    PageBean<MallOrderListAdminVO> selectDecisionPassMallOrderList(MallOrderListAdminQuery query);

    /**
     * 后台-待接单 订单 （已上传商品信息待审核，但审核员未接单， finalStatus = 5）
     * @param query
     * @return com.cy.ppj.model.PageBean<com.cy.ppj.model.vo.order.MallOrderListAdminVO>
     */
    PageBean<MallOrderListAdminVO> selectUnassignedMallOrderList(MallOrderListAdminQuery query);

    /**
     * 后台-审核中 订单 （已接单并审核中）
     * @param query
     * @return com.cy.ppj.model.PageBean<com.cy.ppj.model.vo.order.MallOrderListAdminVO>
     */
    PageBean<MallOrderListAdminVO> selectAuditingMallOrderList(MallOrderListAdminQuery query);

    /**
     * 后台-已审核 订单 （订单审核通过后， finalStatus = 6、8、9、10、11）
     * @param query
     * @return com.cy.ppj.model.PageBean<com.cy.ppj.model.vo.order.MallOrderListAdminVO>
     */
    PageBean<MallOrderListAdminVO> selectAuditedMallOrderList(MallOrderListAdminQuery query);

    /**
     * 后台-申请中订单 （授信拒绝或者商品信息审核拒绝， finalStatus = 4、7）
     * @param query
     * @return com.cy.ppj.model.PageBean<com.cy.ppj.model.vo.order.MallOrderListAdminVO>
     */
    PageBean<MallOrderListAdminVO> selectRejectMallOrderList(MallOrderListAdminQuery query);

    /**
     * 后台-查询 分期订单详情
     * @param orderId
     * @return com.cy.ppj.model.vo.order.MallOrderDetailAdminVO
     */
    MallOrderDetailAdminVO selectMallOrderDetailAdminVO(Long orderId);

    /**
     * 后台-审核员接单
     * @param orderId
     * @param managerId
     * @return void
     */
    void assignManager(Long orderId, Long managerId);

    /**
     * 后台审核-订单购买证明等信息
     * @param auditAO
     * @return void
     */
    void doAuditPurchaseProof(MallOrderAuditPurchaseProofAO auditAO, Long managerId);



}
